package struct;
import ihm.Window;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.util.Vector;

public class Mobile extends Forme {
	
	private boolean _goX;				//True = vers la droite  //False == vers la gauche
	private boolean _goY;				//True = vers le haut False = vers le bas

	private boolean deplacementH;
	private boolean deplacementB;
	private boolean deplacementG;
	private boolean deplacementD;
		
	public Mobile (int x, int y,int radius, int hauteur, int largeur, double orientation, int red, int green, int blue, Window win){
		super(x,y,radius,hauteur,largeur,orientation,red,green,blue,win);
		
		//mouvement autorisé par defaut
		setDeplacementH(true);
		setDeplacementB(true);
		setDeplacementG(true);
		setDeplacementD(true);
      }
	public void deplace() {
	
	}

	public boolean get_goX() {
		return _goX;
	}
	public void set_goX(boolean _goX) {
		this._goX = _goX;
	}
	public boolean get_goY() {
		return _goY;
	}
	public void set_goY(boolean _goY) {
		this._goY = _goY;
	}
	
	public void collision(Mobile mobile, Rectangle hitbox)
	{
		//on recup�re les murs un par un
		Rectangle hitboxCadreH= _win._mur.get(0).getBounds();
		Rectangle hitboxCadreB= _win._mur.get(1).getBounds();
		Rectangle hitboxCadreD= _win._mur.get(2).getBounds();
		Rectangle hitboxCadreG= _win._mur.get(3).getBounds();

		//on teste les murs et les cotŽs de la hitbox un par un
		
		//AXE VERTICAL
		if (hitbox.intersects(hitboxCadreH))		//on heurte le dessus ===> on va vers le bas
		{	
		    _goY=false;
		    this.setDeplacementH(false);  			//on bloque le déplacement vertical
		}
		else
		{
			this.setDeplacementH(true);
		}
		
		if(hitbox.intersects(hitboxCadreB))	//on heurte le bas =====> on va vers le haut
		{
		    _goY=true;
		    this.setDeplacementB(false);  			//on bloque le déplacement vertical vers le bas
		}
		else
		{
			this.setDeplacementB(true);
		}
  
		//AXE HORIZONTAL
		if (hitbox.intersects(hitboxCadreG))		//on heurte la gauche ===> on va vers la droite
		{	
		    _goX=true;
		    this.setDeplacementG(false);  			//on bloque le déplacement horizontal vers la gauche
		}
		else
		{
			this.setDeplacementG(true);
		}
		    	
		if(hitbox.intersects(hitboxCadreD))	//on heurte la droite =====> on va vers la gauche
		{
		    _goX=false;
		    this.setDeplacementD(false);  			//on bloque le déplacement horizontal vers la droite
		}
		else
		{
			this.setDeplacementD(true);
		}
		
	}
 
	
	
	public boolean getDeplacementH() {
		return deplacementH;
	}
	public void setDeplacementH(boolean deplacementH) {
		this.deplacementH = deplacementH;
	}
	public boolean getDeplacementB() {
		return deplacementB;
	}
	public void setDeplacementB(boolean deplacementB) {
		this.deplacementB = deplacementB;
	}
	public boolean getDeplacementG() {
		return deplacementG;
	}
	public void setDeplacementG(boolean deplacementG) {
		this.deplacementG = deplacementG;
	}
	public boolean getDeplacementD() {
		return deplacementD;
	}
	public void setDeplacementD(boolean deplacementD) {
		this.deplacementD = deplacementD;
	}
	public void dessine(Graphics g){}
}